package com.hnx.admin.aurora.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/*
项目名称： admin-aurora
创 建 人: 倔强的头发
创建日期： 2025/6/23   7:14:16 
描   述：
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Excel {
    /**
     * 读取内容转表达式 (如: 0=男,1=女,2=未知)
     */
    public String exp() default "";
    /**
     * 日期格式, 如: yyyy-MM-dd
     */
    public String dateFormat() default "";
    public boolean isCollection() default false;//是否集合
    /**
     * 当值为空时,字段的默认值
     */
    public String defaultValue() default "";
    /**
     * 导出时在excel中每个列的高度
     */
    public float height() default 14;
    /**
     * 另一个类中的属性名称,支持多级获取,以小数点隔开
     */
    public String target() default "";
    /**
     * 导出时在excel中每个列的宽度
     */
    public double width() default 16;
    /**
     * 导出时在excel中排序
     */
    public int sort() default Integer.MAX_VALUE;
    /**
     * 导出到Excel中的字段名称.
     */
    public String title() default "";
    /**
     * 字段类型（0：导出导入；1：仅导出；2：仅导入）
     */
    Type type() default Type.ALL;

    public enum Type
    {
        ALL(0), EXPORT(1), IMPORT(2);
        private final int value;

        Type(int value)
        {
            this.value = value;
        }

        public int value()
        {
            return this.value;
        }
    }
}
